﻿using System;
using System.Collections.Generic;
using System.Text;

namespace Base
{
    class DelegateDemo3
    {
        static void Main(string[] args)
        {
            ////委托+匿名函数
            ////lamda表达式 匿名函数 (参数列表)=>{函数体}；
            ////lamda表达式可以简写，不用写 参数类型 ，可以直接用委托类型接受，返回委托。
            ////实现a+b;
            ////完整声明
            //Func<int, int, int> func = new Func<int, int, int>((int a, int b) => { return a + b; });
            //Console.WriteLine(func(1, 3));
            ////func = new Func<int, int, int>((int a, int b) => { return a * b; });
            ////简写
            //func = (a, b) => { return a * b; };
            //Console.WriteLine(func(2, 3));

            ////泛型委托的类型推断
            //DoSomeCalc<int>((int a, int b) => { return a * b; }, 10, 20);
            ////自动推断类型
            //DoSomeCalc((a, b) => { return a * b; },20,30);

            //static void DoSomeCalc<T>(Func<T,T,T> func,T a,T b)
            //{
            //    Console.WriteLine(func(a, b));
            //}
        }
    }
}
